package com.kobeliu.service;

import com.kobeliu.pojo.bo.CandFollowHrBO;
import com.kobeliu.pojo.bo.HrReadCandBO;
import com.kobeliu.utils.PagedGridResult;

public interface CountsService {


    /**
     * 收藏简历
     * @param hrId
     * @param resumeExpectId
     */
    void addCollect(String hrId,String resumeExpectId);

    /**
     * 取消收藏简历
     * @param hrId
     * @param resumeExpectId
     */
    void removeCollect(String hrId,String resumeExpectId);

    /**
     * 检索当前简历是否被收藏
     * @param hrId
     * @param resumeExpectId
     * @return
     */
    boolean isHrCollectResume(String hrId,String resumeExpectId);

    /**
     * 获取当前hr收藏的简历数
     * @param hrId
     * @return
     */
    Integer getColletResumeCounts(String hrId);

    /**
     * 查询收藏的职位列表
     * @param candUserId
     * @param page
     * @param pageSize
     * @return
     */
    PagedGridResult pagedCollectJobList(String candUserId, Integer page, Integer pageSize);

    /**
     * 查询收藏的简历列表
     * @param hrId
     * @param page
     * @param pageSize
     * @return
     */
    PagedGridResult pagedCollectResumeList(String hrId, Integer page, Integer pageSize);

    /**
     * 增加阅读简历的次数存进redis
     * @param hrId
     * @param resumeExpectId
     */
    void addReadResumeRecord(String hrId, String resumeExpectId);

    /**
     * 查询浏览的数量
     * @param hrId
     * @return
     */
    long getReadResumeRecordCounts(String hrId);

    /**
     * 统计职位数
     * @param hrId
     * @return
     */
    long hrJobCounts(String hrId);

    /**
     * 查看过的简历list
     * @param hrId
     * @param page
     * @param limit
     * @return
     */
    PagedGridResult pagedReadResumeRecordList(String hrId, Integer page, Integer limit);

    /**
     * hr 阅读简历
     * @param bo
     */
    void hrLookCand(HrReadCandBO bo);

    /**
     * 统计谁看过我的次数
     * @param candUserId
     * @return
     */
    long getWhoLookMeCounts(String candUserId);

    /**
     * 查看查看我的hr列表
     * @param candUserId
     * @param page
     * @param pageSize
     * @return
     */
    PagedGridResult pagedWhoLookMe(String candUserId, Integer page, Integer pageSize);

    /**
     * 用户收藏职位
     * @param candUserId
     * @param jobId
     * @return
     */
    void addCollectJob(String candUserId, String jobId);

    /**
     * 用户关注hr
     * @param bo
     */
    void followHr(CandFollowHrBO bo);

    /**
     * 用户取消关注hr
     * @param hrId
     * @param candUserId
     */
    void unfollowHr(String hrId, String candUserId);

    /**
     * 获取cand关注的hr人数
     * @param candUserId
     * @return
     */
    long getCandFollowHrCounts(String candUserId);

    /**
     * 分页查询关注的hr列表
     * @param candUserId
     * @param page
     * @param pageSize
     * @return
     */
    PagedGridResult pagedCandFollowHr(String candUserId, Integer page, Integer pageSize);

    /**
     * 查询当前hr是否被cand关注
     * @param hrId
     * @param candUserId
     * @return
     */
    boolean doseCandFollowHr(String hrId, String candUserId);

    /**
     * 取消关注某职位
     * @param candUserId
     * @param jobId
     */
    void removeCollectJob(String candUserId, String jobId);

    /**
     * 获取cand的收藏职位总数
     * @param candUserId
     * @return
     */
    Long getCollectJobCounts(String candUserId);

    /**
     * 当前职位是否被收藏
     * @param candUserId
     * @param jobId
     * @return
     */
    boolean isCandCollectJob(String candUserId, String jobId);

    /**
     * 应聘者面试统计
     * @param candUserId
     * @return
     */
    Long candGetInterviewRecordCounts(String candUserId);

    /**
     * hr面试统计
     * @param hrId
     * @return
     */
    Long hrGetInterviewRecordCounts(String hrId);
}
